package com.cskaoyan.javase.array.exception5;

/**
 * @description: 空指针异常
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 空指针这种说法是沿袭C++而来的
 * null：空常量
 * 如果对象的引用指向了null，就没有指向对象，反正引用指向的不是一个对象
 * 比如数组，引用没有指向一个数组
 * 但是这个时候，你想获取数组的长度，或者操作数组
 *
 * 总结：
 * 1，空指针异常不是数组独有的，而是只要是引用数据类型都可能产生这个错误
 * 2，以后大家开发中，数据类型大多数都是引用数据类型，这就意味着你天天和空指针异常打游击，作斗争
 * 一旦产生空指针异常，程序就立刻终止，后面的代码也不执行
 * 避免空指针异常是我们使用引用数据类型必须要考虑的东西
 * 最简单的方法就是if判断null
 *
 *
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        //声明一个数组
        int[] arr;
        //让引用指向null
        arr = null;

        if (arr != null){
            System.out.println(arr.length);
        }

        //Dereference of 'arr' will produce 'NullPointerException'
        //System.out.println(arr.length);

        String str = null;
        //System.out.println(str.length());
        System.out.println("hello world!");

        //int[] arr2;

    }
}
